# -*- encoding : utf-8 -*-
# @Author  :    liaogan
# @Time    :    2022/3/31 14:38

from functools import reduce

#函数是functools模块中的一个函数，其作用是对参数序列中元素进行累积，返回值是一个数值。

#1，整数的累积：列表里面整数累加

# a = [1, 3, 5]
# b = reduce(lambda x, y: x + y, a)
# print('1.列表里面整数累加==:', b)  # 输出：1.列表里面整数累加==: 9



#2，列表的累加：列表里面相加
a = [[1, 3, 5], [2, 4, 6, 8]]
b = reduce(lambda x, y: x + y, a)
print('列表里面的列表相加—:', b)  # 列表里面的列表相加—: [1, 3, 5, 2, 4, 6, 8]
c = [[["abc", "123"], ["def", "456"], ["ghi", "789"]], ["qwe", "098"]]
d = reduce(lambda x, y: x + y, c)
print('列表里面的列表相加—:', d)  # 列表里面的列表相加—: [['abc', '123'], ['def', '456'], ['ghi', '789'], 'qwe', '098']



#3，元组相加
a = [("abc", "123"), ("def", "456"), ("ghi", "789")]
b = reduce(lambda x, y: x + y, a)
print('列表里面的元组相加:', b)  # 列表里面的元组相加: ('abc', '123', 'def', '456', 'ghi', '789')



#4，字符串的累加
a = ['abc', 'def', 'hij']
b = reduce(lambda x, y: x + y, a)
print('列表里面字符串的累加:', b)  # 列表里面字符串的累加: abcdefhij
a = ('abc', 'def', 'hij')
b = reduce(lambda x, y: x + y, a)
print('元祖里面字符串的累加:', b)  # 元祖里面字符串的累加: abcdefhij
a = [['abc', 'def', 'hij']]
b = reduce(lambda x, y: x + y, a)
print('嵌套列表里面字符串的累加:', b)  # 嵌套列表里面字符串的累加: ['abc', 'def', 'hij']

